package sharewithus.business.service;

import java.util.List;

/** 
 * @ClassName: IRelationShipService 
 * @Description: 
 * @author chenyun
 * @date 2012-5-15 上午10:21:38 
 */
public interface IRelationShipService {
	
	/**
	 * 
	 * @Description：添加关注：1\更新缓存列表：3\放消息到队列
	 * @author：chenyun 	        
	 * @date：2012-5-15 上午10:21:54
	 * @param uid
	 * @param follower
	 * @throws Exception
	 */
	public void addAttention(String uid, String follower) throws Exception;
	
	/**
	 * 
	 * @Description：取消关注：1、更新用户表的计数器；2、更新缓存列表：3、放消息到队列
	 * @author：chenyun 	        
	 * @date：2012-5-15 上午10:23:02
	 * @param uid
	 * @param follower
	 * @throws Exception
	 */
	public void cancelAttention(String uid, String follower) throws Exception;
	
	/**
	 * 
	 * @Description：从缓存中获取用户的所有粉丝列表，无分页，如缓存获取失败，抛出异常
	 * @author：chenyun 	        
	 * @date：2012-5-15 上午10:04:03
	 * @param uid
	 * @return
	 * @throws Exception
	 */
	public List<String> getFans(String uid) throws Exception;
	
	/**
	 * 
	 * @Description：从缓存中分页获取粉丝列表，根据索引号从list中获取，避免取全量数据
	 * @author：chenyun 	        
	 * @date：2012-5-15 上午10:17:00
	 * @param uid
	 * @param start
	 * @param limit
	 * @return
	 * @throws Exception
	 */
	public List<String> getFansByPage(String uid, long start, long limit) throws Exception;
	
	/**
	 * 
	 * @Description：从缓存中分页获取关注者列表
	 * @author：chenyun 	        
	 * @date：2012-5-15 上午10:19:55
	 * @param uid
	 * @param start
	 * @param limit
	 * @return
	 * @throws Exception
	 */
	public List<String> getFollwersByPage(String uid, long start, long limit) throws Exception;
	
	/**
	 * 
	 * @Description：
	 * @author：chenyun 	        
	 * @date：2012-5-17 上午09:40:53
	 * @param uid
	 * @return
	 * @throws Exception
	 */
	public long getFansNum(String uid) throws Exception;
	
	/**
	 * 
	 * @Description：
	 * @author：chenyun 	        
	 * @date：2012-5-17 上午09:41:20
	 * @param uid
	 * @return
	 * @throws Exception
	 */
	public long getFollowerNum(String uid) throws Exception;
}

